Failure testing is a common and important aspect for distributed applications and systems. However, existing failure testing approaches face many challenges. For example, existing approaches do not include guided and/or precise fault injection (FI) techniques that would enable developers, testers, and/or operations agents to test specific scenarios. Existing FI tools are statistical in nature, and require a large number of injections to gain sufficient confidence and coverage. Additionally, such FI tools do not include an ability to insert faults at precise locations for concurrent requests, nor do existing FI tools include an ability to correlate unit test cases with precise fault injections.
Accordingly, a need exists for techniques for inserting faults at select execution points and scenarios of distributed applications.